/*
 * jxUtils Project (2015)
 * 
 * by Denilson Edinaldo Pinto
 * 
 * LGPL
 * Copyright (C) 2015
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */
package org.jxUtils.system;

/**
 * @author Denilson Edinaldo Pinto
 * @porject jxUtils
 * @package org.jxUtils.system
 * @date 30/01/2015 - 18:29:39
 */
public final class JavaUtil {
	
	/**
	 * @return JRE Class Path
	 */
	public static String getClassPath() {
	
		return SystemProperties.getJavaClassPath();
	}
	
	/**
	 * @return JRE Class Version
	 */
	public static String getClassVersion() {
	
		return SystemProperties.getJavaClassVersion();
	}
	
	/**
	 * @return JRE Compiler
	 */
	public static String getCompiler() {
	
		return SystemProperties.getJavaCompiler();
	}
	
	/**
	 * @return JRE Ext Dirs
	 */
	public static String getExtDirs() {
	
		return SystemProperties.getJavaExtDirs();
	}
	
	/**
	 * @return JRE Home
	 */
	public static String getHome() {
	
		return SystemProperties.getJavaHome();
	}
	
	/**
	 * @return JRE IO Temp Directory
	 */
	public static String getIoTmpdir() {
	
		return SystemProperties.getJavaIoTmpdir();
	}
	
	/**
	 * @return JRE Library Path
	 */
	public static String getLibraryPath() {
	
		return SystemProperties.getJavaLibraryPath();
	}
	
	/**
	 * @return JRE Specification Name
	 */
	public static String getSpecificationName() {
	
		return SystemProperties.getJavaSpecificationName();
	}
	
	/**
	 * @return JRE Specification Vendor
	 */
	public static String getSpecificationVendor() {
	
		return SystemProperties.getJavaSpecificationVendor();
	}
	
	/**
	 * @return JRE Specification Version
	 */
	public static String getSpecificationVersion() {
	
		return SystemProperties.getJavaSpecificationVersion();
	}
	
	/**
	 * @return JRE Vendor
	 */
	public static String getVendor() {
	
		return SystemProperties.getJavaVendor();
	}
	
	/**
	 * @return JRE Url Vendor
	 */
	public static String getUrlVendor() {
	
		return SystemProperties.getJavaVendorUrl();
	}
	
	/**
	 * @return JRE Version
	 */
	public static String getVersion() {
	
		return SystemProperties.getJavaVersion();
	}
	
	/**
	 * @return VM Name
	 */
	public static String getVmName() {
	
		return SystemProperties.getJavaVmName();
	}
	
	/**
	 * @return VM Specification Name
	 */
	public static String getVmSpecificationName() {
	
		return SystemProperties.getJavaVmSpecificationName();
	}
	
	/**
	 * @return VM Specification Vendor
	 */
	public static String getVmSpecificationVendor() {
	
		return SystemProperties.getJavaVmSpecificationVendor();
	}
	
	/**
	 * @return VM Specification Version
	 */
	public static String getVmSpecificationVersion() {
	
		return SystemProperties.getJavaVmSpecificationVersion();
	}
	
	/**
	 * @return VM Vendor
	 */
	public static String getVmVendor() {
	
		return SystemProperties.getJavaVmVendor();
	}
	
	/**
	 * @return VM Version
	 */
	public static String getVmVersion() {
	
		return SystemProperties.getJavaVmVersion();
	}
	
	/**
	 * @return JRE Simple Information
	 */
	public static String getInfo() {
	
		// TODO: Implementar Internacionalização
		return 
			"=====================================\n" + 
			" JRE Specification:\n" + 
			"=====================================\n" + 
			" Version: " + getVersion() + "\n" + 
			" Class Version: " + getClassVersion() + "\n" + 
			" VM Version: " + getVmSpecificationVersion() + "\n" + 
			" Vendor: " + getVendor() + "\n" + 
			" URL Vendor: " + getUrlVendor() + "\n" + 
			" VM Name: " + getVmName() + "\n" + 
			"=====================================";
	}
}
